#ifndef __USER_H__
#define __USER_H__

/**
 * 逻辑结构 单向链表
 * 存储结构 链式存储
 * 功能 : 用于实现对用户信息 的增 删 改 查 判空 清空 销毁 排序 文件写入  文件读取
 */

// 头文件内容
// #include "list.h"
#include "head.h"
// 宏定义用户等级
//  用户数据结构体
#define ADMIN_LEVEL     (1)    // 管理员账户信息文件
#define REGULAR_LEVEL   (2)    // 普通用户信息文件
#define SILVER_LEVEL    (3)    // 银卡会员信息文件(9折) 余额 10000
#define GOLD_LEVEL      (4)    // 金卡会员信息文件(8折) 余额 15000
#define PLATINUM_LEVEL  (5)    // 白金会员信息文件(7折) 余额 20000


// 用户数据操作
void user_data_file_print(u_list *list, const char *file_name, const char *mode);
void user_data_file_scanf(u_list *list, const char *file_name); //  向文件读取用户信息

/**
 * 参数 所有用户的信息
 * 返回值 登录成功后 返回 用户信息
 */
user_data u_login(u_list *list);

//用户注册
user_data u_register();

// 根据手机找回密码
u_node *find_u_node_phone(u_list *list);

// 修改密码
void modify_passwd(user_data data);

// 根据用户等级属性，写入到不同的文件中
void user_fprint_by_level(u_list *user, const char *mode);

// 根据用户等级属性，从文件中读入不同的用户数据
u_list *user_fscanf_by_level(user_data data);

// 余额充值
/*
当充值达到
    - 10000   银卡会员信息文件(9折)
    - 15000   金卡会员信息文件(8折)
    - 20000   白金会员信息文件(7折)
*/
void add_money(user_data data);

//个人中心
void user_center(user_data data);

//购票
void buy_ticket(f_list *flight,Sql_list *ticket,user_data data);

//退票
void refund_ticket(Sql_list *ticket, f_list *flight, user_data data);

#endif
